%-------Identification

\NeedsTeXFormat{LaTeX2e}

\ProvidesPackage{ftl}

%-------Package Loading

\RequirePackage{mathbbol}

\newcommand{\conj}{\ensuremath{\thrm?~}}

%\newcommand{\IF}{~\textsf{if}~}
%\newcommand{\THEN}{~\textsf{then}~}
%\newcommand{\ELSE}{~\textsf{else}~}

\newcommand{\castz}{\ensuremath{\leadsto_Z~\!}}

%%Templates
\newcommand{\och}[1]{\ensuremath{\Lparen~ #1 ~\Rparen}^?}
\newcommand{\mch}[1]{\ensuremath{\Lparen~ #1 ~\Rparen}}
\newcommand{\ls}[1]{\ensuremath{\Lbrack~ #1 ~\Rbrack}}
\newcommand{\param}[1]{\ensuremath{\Langle #1 \Rangle}}
\newcommand{\ch}{\ensuremath{\gch}}

\newcommand{\scat}{\ensuremath{+\!\!\!\!+}}
\newcommand{\catE}{\ensuremath{+\!\!\!\!+_E~}}
\newcommand{\scatm}{\ensuremath{\times\!\!\!\!\times}}
\newcommand{\nils}{\ensuremath{\Lambda}}
\newcommand{\tree}{\textsf{tree}}

\newcommand{\ms}[1]{\ensuremath{\mathcal{M_S}(~ #1 ~)}}
\newcommand{\MS}{\ensuremath{\mathcal{M_S}}}
\newcommand{\MLT}{\ensuremath{\mathcal{M_{LT}}}}
\newcommand{\mc}[1]{\ensuremath{\mathcal{M_C}(~ #1 ~)}}
\newcommand{\MC}{\ensuremath{\mathcal{M_C}}}
\newcommand{\me}[1]{\ensuremath{\mathcal{M_E}(~ #1 ~)}}
\newcommand{\ME}{\ensuremath{\mathcal{M_E}}}
\newcommand{\mcl}[1]{\ensuremath{\mathcal{M_{CL}}(~ #1 ~)}}
\newcommand{\MCL}{\ensuremath{\mathcal{M_{CL}}}}
\newcommand{\ma}[1]{\ensuremath{\mathcal{M_A}(~ #1 ~)}}
\newcommand{\MA}{\ensuremath{\mathcal{M_A}}}
\newcommand{\ml}[1]{\ensuremath{\mathcal{M_L}(~ #1 ~)}}
\newcommand{\ML}{\ensuremath{\mathcal{M_L}}}

\newcommand{\VAA}{\ensuremath{\mathcal{V_A}}}
\newcommand{\VALT}{\ensuremath{\mathcal{V_{LT}}}}
\newcommand{\VAE}{\ensuremath{\mathcal{V_E}}}
\newcommand{\VACL}{\ensuremath{\mathcal{V_{CL}}}}
\newcommand{\VAC}{\ensuremath{\mathcal{V_C}}}

\newcommand{\IPA}{\ensuremath{\mathcal{IP_A}}}
\newcommand{\IPC}{\ensuremath{\mathcal{IP_C}}}
\newcommand{\IPCL}{\ensuremath{\mathcal{IP_{CL}}}}
\newcommand{\IPE}{\ensuremath{\mathcal{IP_E}}}

\newcommand{\ILL}{\ensuremath{\mathcal{IL_L}}}
\newcommand{\ILLC}{\ensuremath{\mathcal{IL_{LC}}}}
\newcommand{\ILA}{\ensuremath{\mathcal{IL_A}}}
\newcommand{\ILT}{\ensuremath{\mathcal{IL_T}}}
\newcommand{\ILE}{\ensuremath{\mathcal{IL_E}}}
\newcommand{\ILC}{\ensuremath{\mathcal{IL_C}}}
\newcommand{\ILCL}{\ensuremath{\mathcal{IL_{CL}}}}

\newcommand{\ICCL}{\ensuremath{\mathcal{IC_{CL}}}}
\newcommand{\ICC}{\ensuremath{\mathcal{IC_C}}}
\newcommand{\ICE}{\ensuremath{\mathcal{IC_E}}}

\newcommand{\RNA}{\ensuremath{\mathcal{R}}n\mathcal{_A}}
\newcommand{\RNL}{\ensuremath{\mathcal{R}}n\mathcal{_L}}
\newcommand{\RNLT}{\ensuremath{\mathcal{R}}n\mathcal{_{LT}}}
\newcommand{\RNC}{\ensuremath{\mathcal{R}}n\mathcal{_C}}
\newcommand{\RNCL}{\ensuremath{\mathcal{R}}n\mathcal{_{CL}}}
\newcommand{\RNE}{\ensuremath{\mathcal{R}n\mathcal{_E}}}

\newcommand{\LTE}{\ensuremath{\mathcal{LT}_2{\mathcal{E}}}}

\newcommand{\icV}{\ensuremath{\mathcal{I_CV}}}
\newcommand{\iclV}{\ensuremath{\mathcal{I_{CL}V}}}
\newcommand{\ieV}{\ensuremath{\mathcal{I_EV}}}
\newcommand{\iaV}{\ensuremath{\mathcal{I_AV}}}

\newcommand{\DVA}{\ensuremath{\mathcal{DV_A}}}
\newcommand{\DVL}{\ensuremath{\mathcal{DV_L}}}
\newcommand{\DVE}{\ensuremath{\mathcal{DV_E}}}
\newcommand{\DVC}{\ensuremath{\mathcal{DV_C}}}
\newcommand{\DVCL}{\ensuremath{\mathcal{DV_{CL}}}}

\newcommand{\ZTC}{\ensuremath{\mathcal{ZTC}}}

%%Laws for Template-Z
\newcommand{\geop}{\ensuremath{g~\exists~op}}
\newcommand{\esc}{\ensuremath{\exists~Sc}}